/*
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */

package br.ufrj.dcc.comp2.projeto.internacionalizacao;

import br.ufrj.dcc.comp2.projeto.controles.MarteAtaca;

/**
 * Classe responsavel por gerenciar a internacionaliza��o do jogo.
 * @author Bruno(Magoo), Eluan(Acre), Diego(Silvio), Davi.
 *
 */
public abstract class InterGeral {
	
	static final public String MENU_JOGO = "menu_jogo";
	static final public String MENU_INICIAR = "menu_iniciar";
	static final public String MENU_ENCERRAR = "menu_encerrar";
	static final public String MENU_RECORDES = "menu_recordes";
	static final public String MENU_SAIR = "menu_sair";
	
	static final public String MENU_OPCOES = "menu_opcoes";	
	static final public String MENU_SOM = "menu_som";
	static final public String MENU_CONTROLE = "menu_controle";
	static final public String MENU_IDIOMA = "menu_idioma";
	static final public String MENU_IDIOMA_EN = "menu_idioma_en";
	static final public String MENU_IDIOMA_PTBR = "menu_idioma_ptbr";
	
	static final public String MENU_SOBRE = "menu_sobre";	
	static final public String MENU_CREDITOS = "menu_creditos";
	static final public String MENU_AJUDA = "menu_ajuda";	
	
	//Jogo:
	static final public String PONTOS = "pontos";
	static final public String PAUSADO = "pausado";	
	
	//Dialogs
	static final public String DIALOG_CONFIRMACAO_MSG = "dialog_confirmacao_msg";
	static final public String DIALOG_CONFIRMACAO_TITLE = "dialog_confirmacao_title";
	static final public String DIALOG_RECORDE_JN_MSG = "dialog_recorde_jn_msg";
	static final public String DIALOG_RECORDE_JN_TITLE = "dialog_recorde_jn_title";	
	static final public String DIALOG_RECORDE_TITLE = "dialog_record_title";
	static final public String DIALOG_RECORDE_SEMRECORDE = "dialog_record_semrecorde";
	static final public String DIALOG_CREDITOS_MSG = "dialog_creditos_msg";
	static final public String DIALOG_CREDITOS_TITLE = "dialog_creditos_title";
	static final public String DIALOG_AJUDA_MSG = "dialog_ajuda_msg";
	static final public String DIALOG_AJUDA_TITLE = "dialog_ajuda_title";
	
	/**
	 * Retorna uma string localizada para o idioma pedido.
	 * @param idioma ID do idioma pedido.
	 * @param string Constante indicando qual string se deseja.
	 * 
	 */
	public static String retornaStringLocalizada(int idioma, String string){
		if(idioma == Ingles.ID){
			if(string == MENU_JOGO){
				return Ingles.MENU_JOGO;
			}
			else if(string == MENU_INICIAR){
				return Ingles.MENU_INICIAR;
			}
			else if(string == MENU_ENCERRAR){
				return Ingles.MENU_ENCERRAR;
			}	
			else if(string == MENU_RECORDES){
				return Ingles.MENU_RECORDES;
			}		
			else if(string == MENU_SAIR){
				return Ingles.MENU_SAIR;
			}	
			else if(string == MENU_OPCOES){
				return Ingles.MENU_OPCOES;
			}		 
			else if(string == MENU_SOM){
				return Ingles.MENU_SOM;
			}		
			else if(string == MENU_CONTROLE){
				return Ingles.MENU_CONTROLE;
			}		
			else if(string == MENU_IDIOMA){
				return Ingles.MENU_IDIOMA;
			}		
			else if(string == MENU_IDIOMA_EN){
				return Ingles.MENU_IDIOMA_EN;
			}		
			else if(string == MENU_IDIOMA_PTBR){
				return Ingles.MENU_IDIOMA_PTBR;
			}		
			else if(string == MENU_SOBRE){
				return Ingles.MENU_SOBRE;
			}		
			else if(string == MENU_CREDITOS){
				return Ingles.MENU_CREDITOS;
			}		
			else if(string == MENU_AJUDA){
				return Ingles.MENU_AJUDA;
			}		
			else if(string == PONTOS){
				return Ingles.PONTOS;
			}		
			else if(string == PAUSADO){
				return Ingles.PAUSADO;
			}		
			else if(string == DIALOG_CONFIRMACAO_MSG){
				return Ingles.DIALOG_CONFIRMACAO_MSG;
			}		
			else if(string == DIALOG_CONFIRMACAO_TITLE){
				return Ingles.DIALOG_CONFIRMACAO_TITLE;
			}
			else if(string == DIALOG_RECORDE_JN_MSG){
				return Ingles.DIALOG_RECORDE_JN_MSG;
			}		
			else if(string == DIALOG_RECORDE_JN_TITLE){
				return Ingles.DIALOG_RECORDE_JN_TITLE;
			}
			else if(string == DIALOG_RECORDE_TITLE){
				return Ingles.DIALOG_RECORDE_TITLE;
			}						
			else if(string == DIALOG_RECORDE_SEMRECORDE){
				return Ingles.DIALOG_RECORDE_SEMRECORDE;
			}
			else if(string == DIALOG_CREDITOS_MSG){
				return Ingles.DIALOG_CREDITOS_MSG;
			}		
			else if(string == DIALOG_CREDITOS_TITLE){
				return Ingles.DIALOG_CREDITOS_TITLE;
			}
			else if(string == DIALOG_AJUDA_MSG){
				return Ingles.DIALOG_AJUDA_MSG;
			}						
			else if(string == DIALOG_AJUDA_TITLE){
				return Ingles.DIALOG_AJUDA_TITLE;
			}			
		}
		else if(idioma == Portugues.ID){
			if(string == MENU_JOGO){
				return Portugues.MENU_JOGO;
			}
			else if(string == MENU_INICIAR){
				return Portugues.MENU_INICIAR;
			}
			else if(string == MENU_ENCERRAR){
				return Portugues.MENU_ENCERRAR;
			}	
			else if(string == MENU_RECORDES){
				return Portugues.MENU_RECORDES;
			}		
			else if(string == MENU_SAIR){
				return Portugues.MENU_SAIR;
			}	
			else if(string == MENU_OPCOES){
				return Portugues.MENU_OPCOES;
			}		
			else if(string == MENU_SOM){
				return Portugues.MENU_SOM;
			}		
			else if(string == MENU_CONTROLE){
				return Portugues.MENU_CONTROLE;
			}		
			else if(string == MENU_IDIOMA){
				return Portugues.MENU_IDIOMA;
			}		
			else if(string == MENU_IDIOMA_EN){
				return Portugues.MENU_IDIOMA_EN;
			}		
			else if(string == MENU_IDIOMA_PTBR){
				return Portugues.MENU_IDIOMA_PTBR;
			}		
			else if(string == MENU_SOBRE){
				return Portugues.MENU_SOBRE;
			}		
			else if(string == MENU_CREDITOS){
				return Portugues.MENU_CREDITOS;
			}		
			else if(string == MENU_AJUDA){
				return Portugues.MENU_AJUDA;
			}	
			else if(string == PONTOS){
				return Portugues.PONTOS;
			}		
			else if(string == PAUSADO){
				return Portugues.PAUSADO;
			}					
			else if(string == DIALOG_CONFIRMACAO_MSG){
				return Portugues.DIALOG_CONFIRMACAO_MSG;
			}		
			else if(string == DIALOG_CONFIRMACAO_TITLE){
				return Portugues.DIALOG_CONFIRMACAO_TITLE;
			}		
			else if(string == DIALOG_RECORDE_JN_MSG){
				return Portugues.DIALOG_RECORDE_JN_MSG;
			}		
			else if(string == DIALOG_RECORDE_JN_TITLE){
				return Portugues.DIALOG_RECORDE_JN_TITLE;
			}		
			else if(string == DIALOG_RECORDE_TITLE){
				return Portugues.DIALOG_RECORDE_TITLE;
			}						
			else if(string == DIALOG_RECORDE_SEMRECORDE){
				return Portugues.DIALOG_RECORDE_SEMRECORDE;
			}				
			else if(string == DIALOG_CREDITOS_MSG){
				return Portugues.DIALOG_CREDITOS_MSG;
			}		
			else if(string == DIALOG_CREDITOS_TITLE){
				return Portugues.DIALOG_CREDITOS_TITLE;
			}
			else if(string == DIALOG_AJUDA_MSG){
				return Portugues.DIALOG_AJUDA_MSG;
			}						
			else if(string == DIALOG_AJUDA_TITLE){
				return Portugues.DIALOG_AJUDA_TITLE;
			}						
		}
	return "";		
	}
	
	public static void AlteraIdioma(MarteAtaca ma, int idioma) {
		if(ma.getIdioma() == idioma){
			return; //Nao precisa trocar idioma
		}
		
		ma.setIdioma(idioma);
		//Comeca alterando o idioma do Menu do jogo:
		ma.getMenu().mudaIdiomaMenu(ma.getIdioma());
	}	
}
